iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
Software Development

闖入DLL的世界 DLL我要進來了哦系列 第 18

第十八天:強制卸載DLL:上

  • 分享至 

  • xImage
  •  

大家好今天是第18天, 我們要學習漫畫分上下集哈哈哈哈(其實是沒有稿),昨天講了一下概念操作方法,那今天我們就來實作看看吧,廢話不多說我們直接進入程式碼。

程式碼

#include <Windows.h>
#include <iostream>
typedef void (*ccc)();

int main() {
	HMODULE hmodule = LoadLibrary("Dll5.dll");
	printf("%X", hmodule);

	if (hmodule == NULL) {
		MessageBox(NULL,"沒抓到","標題", MB_OK);
		return -1;
	}

	ccc a = (ccc)GetProcAddress(hmodule, "ccc");
	a();

	getchar();
	return 0;

}

首先呢我們需要先講一下這個print("%X",hmoudule)的意思是甚麼
這個X呢是表達我們輸出要使用16進位的方式輸出輸出後你會發現視窗跳出一個位址

這就是DLL存放在裡面的一個位址而這個位置我們要用在哪裏呢
在CreateRemoteThread(hProcess, NULL, 0, lpStartAddress, Return, 0, NULL);這條裡面的Return
原先這裡是申請一個記憶體給DLL存放那現在我們要從程式中移除DLL
那當然是放他的所存在的記憶體位址
所以這邊會打上return=0x7BD60000

結語

我們先分兩篇上下來講述強制卸載DLL,最近要忙看書又要上班真的好後悔前面沒有先備稿QQ,好了話不多說了先跑去看書,我們明天見。


上一篇
第十七天:強制卸載模組概念
下一篇
第19天:強制卸載DLL 中
系列文
闖入DLL的世界 DLL我要進來了哦30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言